package com.tanhua.server.controller;

import com.tanhua.domain.db.User;
import com.tanhua.domain.db.UserInfo;
import com.tanhua.server.service.UserService;
import com.tanhua.server.utils.UserHolder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

@RestController
@RequestMapping("/users")
public class UserInfoController {

    @Autowired
    private UserService userService;

//    更新用户的头像
//    1、请求方式 post
//    2、请求地址 users/header
//    3、请求参数 类型multipart/form-data  请求头上有Authorization 请求体文件类型的 headPhoto
//    4、返回结果
    @PostMapping(value = "/header",name =" 更新用户的头像" )
    public ResponseEntity updateUserInfoHead(MultipartFile headPhoto) throws Exception{
        return userService.loginReginfoHead(headPhoto);

    }

    //    更新用户的资料
//    1、请求方式 put
//    2、请求地址
//    3、请求参数 类型application/json  请求头上有Authorization 请求体直接可以使用UserInfo对象接收
//    4、返回结果
    @PutMapping(name =" 更新用户的资料" )
    public ResponseEntity updateUserInfo(@RequestBody UserInfo userInfo){
       return userService.updateUserInfo(userInfo);
    }



//    获取指定人的信息
//    1、请求方式 get
//    2、请求地址
//    3、请求参数  请求头上有Authorization 参数中userID   huanxinID
//    4、返回结果 UserInfo

    @GetMapping(name =" 获取指定人的信息" )
    public ResponseEntity queryUserInfo(@RequestHeader("Authorization") String token,
                                        @RequestParam(required = false) Long userID,@RequestParam(required = false) Long huanxinID){
        //    userID----》 环信ID-----》 token
        Long uid = null; //用来接收用户id
        if(userID!=null){
           uid =  userID;
        }else{
            if(huanxinID!=null){
                uid = huanxinID;
            }else{
                User user = userService.getUserByToken(token);
                uid = user.getId();
            }
        }
        return userService.queryUserInfoById(uid);
    }



}
